var map = null;
var markers={},info={},polys={}; //用于保存图元,信息
var url = {
	marker:"/get?id=01"
}

/**
 * 初始化函数,地图脚本入口
 * @return
 */
function initialize() {
	//初始化地图
	initializeMap();
	initializeTimer();
//	testAddMarkers();
}

/**
 * 初始化时钟
 */
function initializeTimer(){
	$(window).everyTime('5s',getMarkers);
}

/**
 * 获取数据并处理
 */
function getMarkers(){
	$.getJSON(url.marker,function(data){
		if(data){
			if(data.title){
				addMarker(data);
			}
		}
	});	
}

/**
 * 初始化地图
 * 中心点位置、放大级别、地图样式需要根据用户选择从数据库中取出定义
 * @return
 */
function initializeMap(){
	var myLatlng =new google.maps.LatLng(39.9748, 116.3430);
	var myOptions = {
		zoom: 13,
		center: myLatlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

}

/**
 * 测试
 * @return
 */
function testAddMarkers(){
	var ll = [39.9748, 116.3430];
	var data = {
			image: "/img/blue.png",
			latlon: ll,
			title: "001"			
		}
	addMarker(data);
}

/**
 * 增加一个图元
 * @return
 */
function addMarker(data){	 
	var marker = getMarker(data);
	var infoWindow = getInfoWindow(data);
	infoWindow.setPosition(marker.getPosition());
	infoWindow.open(map,marker); 
}

/**
 * 得到一个信息窗口
 * @param data marker数据
 * @return 如果已经存在则更新数据返回，如果不存在则新建
 */
function getInfoWindow(data){
	var title = data.title;
	var infoWindow;
	if(info.title){
		infoWindow =  info.title;
	}else{
		infoWindow = new google.maps.InfoWindow();
	}
	infoWindow.content = "aaaa"; 
	return infoWindow;
}

/**
 * 
 * @param title 
 * @param ll
 */
function drawTrackLine(title,ll){
    var poly;
    if(polys.title){ //线不存在
    	poly = polys.title;
    }else{
    	var polyOptions = {
	      strokeColor: '#000000',
	      strokeOpacity: 1.0,
	      strokeWeight: 3
	    }
	    poly = new google.maps.Polyline(polyOptions);
	    poly.setMap(map);
	    
	    polys.title = poly;
    }
    if(ll){
    	var path = poly.getPath();
        path.push(ll);
    }
}

/**
 * 
 * @param data marker数据
 * @return
 */
function getMarker(data){
	var title = data.title;
	var ll = data.latlon; //经纬度
	var image = data.image;//图标
	var LatLng = new google.maps.LatLng(ll[0], ll[1]);

	var marker;
	if(markers.title){
		marker =  markers.title;
		marker.setMap(null); //删除该图标
	}
	marker = new google.maps.Marker({         
		position: LatLng,         
		map: map,                
		icon: image,                
		title: data.title    
	});
	markers.title = marker;
	
	drawTrackLine(title,LatLng); //绘制轨迹
	
	return marker;
	
}

/**
 * 删除一个图元
 * @param data
 * @return
 */
function removeMarker(title){
	//删除图标
	if(markers.title){
		markers.title = null;
		delete markers.title;
	}
	//删除信息面板
	if(info.title){
		info.title = null;
		delete info.title;
	}
	//删除轨迹
	if(polys.title){
		polys.title = null;
		delete polys.title;
	}
}

/**
 * 清空所有图元
 * @return
 */
function clearMarkers(){
	if(markers){
//		for(i in markersArray){
//			markersArray[i].setMap(null);  
//		}
//		markersArray.length=0;
	}
}
